package com.hxkj.service;

import com.github.pagehelper.PageInfo;
import com.hxkj.domain.po.Channel;
import com.platform.common.domain.result.ResultDataStruct;
import com.platform.common.domain.result.ResultMessageStruct;
import com.platform.common.domain.to.PageTo;

import java.util.List;

/**
 * @InterfaceName ChannelService
 * @Description TODO
 * @Author Mr.zheng
 * @Date 2018/6/7 11:59
 * @Version 1.0
 */
public interface ChannelService {
    
    /**
    * @author Mr.zheng
    * @Description saveChannel 新增频道
    * @Date 17:56 2018/6/7
    * @Param [channel]
    * @return com.platform.common.domain.result.ResultMessageStruct
    **/
    ResultMessageStruct saveChannel(Channel channel) throws Exception;

    /**
    * @author Mr.zheng
    * @Description getChannelList 获取频道列表
    * @Date 17:58 2018/6/7
    * @Param [channel, pageTo]
    * @return com.github.pagehelper.PageInfo<com.hxkj.domain.po.Channel>
    **/
    PageInfo<Channel> getChannelList(Channel channel, PageTo pageTo) throws Exception;

    /**
    * @author Mr.zheng
    * @Description removerColumn 删除频道
    * @Date 17:59 2018/6/7
    * @Param [channel]
    * @return com.platform.common.domain.result.ResultMessageStruct
    **/
    ResultMessageStruct removeChannel(Channel channel) throws Exception;

    /**
    * @author Mr.zheng
    * @Description modifyChannel 修改频道
    * @Date 18:14 2018/6/7
    * @Param [channel]
    * @return com.platform.common.domain.result.ResultMessageStruct
    **/
    ResultMessageStruct modifyChannel(Channel channel) throws Exception;

    /**
    * @author Mr.zheng
    * @Description getChannel 根据ID获取频道
    * @Date 15:58 2018/7/6
    * @Param [channel]
    * @return com.platform.common.domain.result.ResultDataStruct<com.hxkj.domain.po.Channel>
    **/
    ResultDataStruct<Channel> getChannel(Channel channel) throws Exception;


    /**
     * @author Mr.zheng
     * @Description getChannel 根据站点获取所有频道
     * @Date 15:58 2018/7/6
     * @Param [channel]
     * @return com.platform.common.domain.result.ResultDataStruct<com.hxkj.domain.po.Channel>
     **/
    ResultDataStruct<List<Channel>> getAllChannel(Channel channel);

    /**
     * 通过站点id获取所有的频道
     * chenfangzhou
     */
    ResultDataStruct<List<Channel>> getListBySiteId(Channel channel)throws Exception;
    /**
     * @author Mr.zheng
     * @Description getChannelByTempletId 根据站点ID和模板ID获取一条绑定了该模板的频道数据
     * @Date 14:47 2018/8/16
     * @Param [channel]
     * @return com.platform.common.domain.result.ResultDataStruct<com.hxkj.domain.po.Channel>
     **/
    ResultDataStruct<Channel> getChannelByTempletId(Channel channel) throws Exception;
}
